import java.util.ArrayList;
import java.util.List;

/**
 * @author hangwen
 * @date 2024/4/1
 */
public class 基础类型 {

    public static void main(String[] args) {
        int i = 0;

        //1.i不是对象，没有任何方法
        //2.i可以计算
        i++;
        ++i;
        i = i + 1;

        //byte和short可以自增 但不可运算，必须转成int，int是最小的计算单元
        byte b = 0;
        b++;
        b = (byte) ((int) b + 1);

        Integer iObj = 0;
        //等价于
        iObj = Integer.valueOf(0);

        //1.装箱后，iObj是对象，可以调用方法
        System.out.println(iObj.toString());
        System.out.println(iObj.equals(0));//true

        //2.可以放入集合 List Set Map,而int不可以
        List<Integer> list = new ArrayList<>();
        //自动装箱
        list.add(1);

        //补充，int不能放入集合，但可以放入int[]数组
        //1个Integer对象占用16字节，1个int占用4字节

        //拆箱可能引发的bug
        Integer number = null;
        //plusOne(number)等价于plusOne(number.intValue())
//        System.out.println(plusOne(number));//NullPointerException,拆箱时，null会报错

        Integer value = true ? number : 0;
    }

    private static int plusOne(int i) {
        return i + 1;
    }
}
